The present invention relates to an image resolution conversion method for converting the resolution of an image by increasing or decreasing the number of pixels that express the image. More particularly, the present invention relates to a resolution conversion module that can be built in a printer driver in a host computer and implements the image resolution conversion method, and a printer driver with that module, and has as its object to change the resolution of image data on a computer in correspondence with the resolution of an output apparatus such as an ink-jet printer or the like. Furthermore, the present invention relates to various storage media that store an image processing program including the resolution conversion module.
In general, in computer systems, since the resolutions used are different between the input and output apparatuses, the input/output apparatus and computer main body, or the systems in correspondence with their purposes, images are often processed at different resolutions. Of such differences, the resolution difference between the computer main body or display, and printer is most frequently.
A program called a printer driver runs on a computer, and generates data to be printed by a printer and outputs a drawing command to the printer. The printer driver converts commands that are standardized among the respective OS's and are used for drawing characters, figures, and images into drawing commands that can be interpreted by each printer. In this case, the printer driver must take the difference between the processing resolution on the application program and the resolution at the printer into consideration. For example, when the application program manages data at 90 dpi, and that data is output by a printer having a resolution of 360 dpi, the printer driver must generate page data having pixels four times those of the original data in both the vertical and horizontal directions.
Serial printers represented by ink-jet printers, to which the present invention is especially suitably applied, have no PDL (page description language), and normally print upon receiving print commands based on bitmap data generated by printer drivers. Hence, such printer driver converts character and figure data expressed by vectors into bitmap data with an output resolution by directly mapping them on a memory to have the number of pixels corresponding to printer resolutions. As for image data which is already bitmap data, the printer driver converts them into bitmap data with an output resolution by changing their size by enlargement or reduction in correspondence with the output resolution.
There are various types of resolution conversion methods achieved by enlargement or reduction of bitmap data. For example, when enlargement is used, 0-th order interpolation that simply repeats pixels in correspondence with an enlargement factor, linear interpolation that fills pixels produced by enlargement on the basis of, e.g., the ratio of distances from the original pixel, a method of attaining optimal enlargement by switching various interpolation schemes depending on the layout state of surrounding pixels (Japanese Laid-Open Patent No. 7-105359), and the like are available.
However, the image processing in a printer driver has many limitations, and it is often impossible or difficult to install resolution conversion in the driver, since the individual schemes cannot directly cope with arbitrary magnifications including non-integer magnifications, since these schemes cannot cope with processing in units of arbitrary numbers of lines that may produce a discontinuity between neighboring bands in the output result, and so on. Such problems are serious in digital image filter-based image processing schemes that require surrounding pixels upon processing each pixel. However, in general, the digital image filter-based processing can assure higher image quality after processing than simple processing such as 0th-order interpolation that does not use any surrounding pixels.